#ifndef EXPANSION_HPP
#define EXPANSION_HPP

void expandAndSplit(list<Token> &tokens, vector<string> &params, Job *context, bool allowAssignment);

void filenameExpand(list<Token>::iterator start, list<Token>::iterator end, vector<string> &params, Job *context);

pair<string,string> tabComplete(string prefix, string suffix);

bool isAssignment(const list<Token> &tokens);
bool isAssignment(string param);
bool isVarnameChar(char ch, bool first);
string namePart(string param);
string valuePart(string param);

#endif
